package com.yupi.springbootinit.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yupi.springbootinit.model.dto.chart.ChartQueryRequest;
import com.yupi.springbootinit.model.entity.Chart;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yupi.springbootinit.model.entity.User;

import javax.servlet.http.HttpServletRequest;

/**
* @author ning
* @description 针对表【chart(图表信息表)】的数据库操作Service
* @createDate 2023-07-30 14:52:51
*/
public interface ChartService extends IService<Chart> {
    /**
     * 构建用户输入
     * @param chart 图表
     * @return 用户输入
     */
    public String buildUserInput(Chart chart);

    /**
     * 更新数据库状态发生异常
     * @param chartId 图表， execMessage 异常原因
     */
    public void handleChartUpdateError(Long chartId, String execMessage);

    /**
     * 保存 BI 返回结果到数据库
     * @param result 返回结果, chartId 图表 id
     * @return 保存结果
     */
    public boolean saveBIResult(String result, Long chartId);

    /**
     * 从 redis 中查询数据
     * @param chartQueryRequest 返回结果
     * @return 分页信息
     */
    Page<Chart> getChartByPageByRedis(ChartQueryRequest chartQueryRequest, User user);

    /**
     * 获取查询包装类
     *
     * @param chartQueryRequest
     * @return
     */
    QueryWrapper<Chart> getQueryWrapper(ChartQueryRequest chartQueryRequest, Long curUserId);
}
